1. Field of the invention
The present invention relates to fast change of Internet Protocol Headers Compression algorithm.
2. Description of the Related Art
Due to the tremendous success of the Internet, it has become a challenging task to make use of the Internet Protocols (IP) over all kinds of network links. IP usually refer to numerous packet switching protocols such as IPv4 (Internet protocol version 4), IPv6 (Internet protocol version 6), UDP (User Datagram Protocol), UDP-Lite, TCP (Transport Control Protocol), RTP (Real-time Protocol), etc. An IP packet is usually composed of a payload of information sequentially encapsulated in one or more IP protocols. Reference is now made to the Drawings wherein FIG. 1 shows an exemplary IP packet 100 formed by a payload 110, a RTP header 140, a UDP header 130 and an IPv4 header 120. The IP packet 100 is referred to as an IPv4/UDP/RTP packet. For simplicity purposes, the headers 120, 130 and 140 are usually jointly referred to as IP headers 150. It should be understood that other sets and subsets of IP protocols each having different header configurations can be used to form the IP packet 100 and the IP headers 150. Each header 120, 130 and 140 of the IP headers 150 carries specific information about the IP packet 100, which information is used by the destination of the packet 100 to interpret the payload 110. The carried information in the IP headers may include origination and destination of the IP packet 100, associated quality of service information, a sequence number, checksum information for integrity of the payload, etc. One drawback of IP is the large size of the IP headers. It is not a simple task to make use of IP over narrow band network links as, for example, cellular links. As an example, using the IP protocols for ordinary speech data (e.g. Voice-over-IP or VoIP using IPv4/UPD/RTP or IPv6/UPD/RTP) may represent a loss of as much as 70% of the bandwidth capacity of a given network link.
The term header compression (HC) comprises the art of minimizing the necessary bandwidth used by the IP headers. It is usually performed on a per-hop basis over point-to-point network links. Header compression techniques, in general, have a more than ten-year-old history within the Internet community. Several techniques commonly used are described in the following documents: RFC 1144 [VJ], RFC 2507 [IPHC] and RFC 2508 [CRTP], all herein included by reference. Header compression takes advantage of the fact that some fields in the IP headers are not changing (static) within a stream of packet pertaining to a given packet flow, or change with small or predictable values. Header compression techniques make use of these characteristics and send static information only initially, while changing fields are sent with their absolute values or as differences from packet to packet. Completely random information has to be sent without any compression at all. The challenging task of any header compression technique is to keep both ends of the network link consistent with each other. For that purpose, a compressor at one end and a decompressor at the other end each make use of a compression context. The use of the compression contexts aims at keeping the IP headers size as low as possible. To do so, each end manages all necessary information to eliminate some fields (totally or partially) from the IP headers at the compressor end and to rebuild the IP headers at the decompressor end.
Header compression techniques are thus an important component to make VoIP over Wireless (VoIPoW) an economically feasible alternative to circuit switched voice. For this purpose, some header compression techniques have been developed by the Robust Header compression (ROHC) Working Group of the Internet Engineering Task Force (IETF). RFC 3095 [ROHC] and RFC 3242 ROHC LLA [LLA] herein included by reference, describes an extensible framework for which profiles for compression of various networking protocols may be defined. The following example takes the header compression technique defined in ROHC as an example. In such a case, the compression contexts of both the compressor and the decompressor contain and maintain relevant information about past packets, which information is used to compress and decompress subsequent packets. More precisely, ROHC says the following: “The context of the compressor is the state it uses to compress a header. The context of the decompressor is the state it uses to decompress a header. Either of these or the two in combination are usually referred to as “context”, when it is clear which is intended. The context contains relevant information from previous headers in the packet stream, such as static fields and possible reference values for compression and decompression. Moreover, additional information describing the packet stream [or flow] is also part of the context, for example information about how the IP Identifier field changes and the typical inter-packet increase in sequence numbers or timestamps.”
In order to work properly, each header compression technique requires an initialization phase during which the compressor and the decompressor build their respective compression context. This phase is usually referred to as the context initialization phase. It usually requires the compressor to start using a low compression state. Initially, the transmitted packets contain the information necessary to initialize at least the static and maybe the dynamic part of the decompressor context. The compressor must then have enough confidence that the decompressor has the proper context before a transition to a higher compression ratio takes place. This confidence may be achieved using explicit feedback from the decompressor to the compressor, or by sending a number of context initialization packets repeatedly for a large enough interval. The use of explicit feedback requires at least one Round-Trip Time (RTT) period before confidence may be achieved. The use of a predetermined number of packets may achieve confidence in less than one RTT period but cannot absolutely guarantee that the decompressor does have the proper context other than optimistically expect to be successful with a high percentage rate. The maximum compression ratio achievable on a given link largely depends on the header compression technique used thereon. However, it takes several phases of confidence/transition before reaching the maximum compression ratio of a given compression technique.
Reference is now made concurrently to FIG. 2 and FIG. 3, which respectively show an exemplary prior art architecture of a header compression technique between a Mobile Station (MS) 210 and a Base Station (BS) 220 in a wireless system 200 and a prior art exemplary architecture of a header compression technique between the MS 210 and a Packet Data Serving Node (PDSN) 230 in the wireless system 200. In wireless standards for packet data communications, multiple header compression (HC) techniques may be supported and may be used to compress similar packet flows. For example, IP/UDP/RTP packets may be compressed using Compressed Real-time Transport Protocol (CRTP), but in particular using either the ROHC RTP [ROHC] profile or the ROHC LLA (Link-Layer Assisted) profile [LLA]. The Mobile Station (MS) 210 may thus support one or many of these header compression techniques and request from a Radio Access Network (RAN) (represented by the BS 220 and a Packet Control Function 240) or from a Core Network (CN) (represented by the PDSN 230) the use of any of the supported header compression techniques. In general, the network side may provide support for different header compression techniques for different packet data services but does not necessarily support all types of services.
The wireless system 200 is, in general, composed of a number of nodes including the MS 210, the Base Station 220, the PCF 240 and the PDSN 230 or their equivalent in accordance with which wireless standard the wireless system 200 is built. The BS 210 may be connected to the PCF 240, which in turn may be connected to the PDSN 230. A Header Compression functionality (HC) may be located in different nodes depending on the wireless system's 200 architecture. FIG. 2 shows the example of a generic architecture for the wireless system 200 where HC is located in the MS 210 and in the BS 220. Another example is shown in FIG. 3, where the HC is located in the MS 210 and in the PDSN 230. In some cases, additional functionality supporting HC may be found in other nodes such as in the BS 220 as pictured in FIG. 2 and FIG. 3, which is represented by an Assisting Layer 250.
The wireless system 200 is built to provide the possibility for the MS 210 to freely move from a coverage area (not shown) to another while maintaining connectivity to a particular packet data service. One or multiple base stations similar to the BS 220 serve each coverage area. When the MS 210 is connected to the RAN and to a number of services (not shown), the nodes and services involved in the communication are referred to as a serving system (220-240). In the examples of FIG. 2 and FIG. 3, the serving system is composed of the BS 220, the PCF 240 and the PDSN 230. When moving from the serving system to a second system, the second system allocating resources and taking over the communication is referred to as a target system (not shown).
The various packet data services offered by the RAN may be defined using different Service Options (SO), each based on traffic characteristics (real-time, streaming, best effort, etc.) and traffic requirements (delays, error rates, etc.). A given SO may define channels via negotiation of header compression technique, payload compression or encryption to be applied for each type of traffic. The SO may be defined for a generic packet data service or a specialized service optimized for a specific type of traffic, such as for VoIP traffic. The SO may use header compression for some or all packet flows, and may support different header compression techniques.
A problem arises when the MS 210 wants to handoff from the serving system (220-240) to the target system if the header compression technique and the SO currently used in the serving system (220-240) is not supported by the target system. In such a case, the compression contexts associated thereto must be reinitialized completely. This situation causes a certain delay for which the compression efficiency is far from optimal or totally null. In the example of VoIP flows over very narrow bandwidth wireless links, such delay impacts the perceived quality of speech until optimal compression efficiency is reached again.
As it can be appreciated, there is a need for fast change of Internet Protocol (IP) headers compression algorithm.